package com.farewell.hotel.service;

import com.farewell.hotel.pojo.Room;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Farewell
 * @date 2021/4/23
 */
public interface RoomService {
    /**
     * 退房后设置为打扫状态
     *
     * @param roomId 房间主键
     */
    void setRoomToCleaning(@Param("roomId") Long roomId);

    /**
     * 获取入住的房间号
     *
     * @return 已入住的房间集合
     */
    List<Room> getRoomsByStatusWithUsed();

    /**
     * 查询空闲的房间
     *
     * @return 空闲房间集合
     */
    List<Room> findSpareRoom();

    /**
     * 获取所有房间信息
     * @return 房间集合
     */
    List<Room> getRoomInfo();

    /**
     * 修改房间状态从打扫中为空闲
     *
     * @param id 房间主键
     */
    void changeRoomFromCleanToSpareById(Long id);

    /**
     * 添加一个房间信息
     *
     * @param room 房间对象
     */
    void addRoom(Room room);

    /**
     * 通过id修改房间信息
     *
     * @param room 房间对象
     */
    void updateRoom(Room room);

    /**
     * 通过id删除一个房间
     *
     * @param id 房间主键
     */
    void deleteRoom(Long id);
}
